/**
 * 
 */
package LDVH.objets;

import LDVH.itf.IGestObjets;
import java.io.Serializable;
import java.util.HashMap;

import java.util.Map;

/** 
 * <!-- begin-UML-doc -->
 * <!-- end-UML-doc -->
 * @author 3403024
 */
public class GestObjets implements IGestObjets, Serializable {
	/** 
	 * <!-- begin-UML-doc -->
	 * <!-- end-UML-doc -->
	 */
	private final Map<Integer, Objet> objets;
        
        public GestObjets() {
            this.objets = new HashMap<>();
        }
	/** 
	 * <!-- begin-UML-doc -->
	 * <!-- end-UML-doc -->
	 * @param description
	 * @return
	 */
        @Override
	public Integer ajouterObjet(String description) {
		Objet o = new Objet(description);
		Integer id = this.objets.size();
		this.objets.put(id, o);
		return id;
	}

	/** 
	 * <!-- begin-UML-doc -->
	 * <!-- end-UML-doc -->
	 * @param idObjet
	 */
        @Override
	public void supprimerObjet(Integer idObjet) {
		this.objets.remove(idObjet);
	}

	/** 
	 * <!-- begin-UML-doc -->
	 * <!-- end-UML-doc -->
	 * @return
	 */
        @Override
	public Integer[] listerObjets() {
		return this.objets.keySet().toArray(new Integer[this.objets.size()]);
	}

	/** 
	 * <!-- begin-UML-doc -->
	 * <!-- end-UML-doc -->
	 * @param idObjet
	 * @return
	 */
        @Override
	public String getDescription(Integer idObjet) {
		Objet o = this.objets.get(idObjet);
		if (o == null)
			return new String();
		return o.getDescription();
	}
}